package com.dede.net_speed_monitor.activity;

import android.app.FragmentTransaction;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Build;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.LinearLayout;
import android.widget.Switch;
import android.widget.TextView;

import com.dede.net_speed_monitor.R;
import com.dede.net_speed_monitor.config.Config;
import com.dede.net_speed_monitor.fragment.SettingFragment;
import com.dede.net_speed_monitor.service.NetMonitorService;
import com.dede.net_speed_monitor.util.ServiceUtil;

import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;

public class SettingActivity extends AppCompatActivity {

//    @BindView(R.id.tv_service_state)
//    TextView mTvServiceState;
//    @BindView(R.id.switch_service_state)
//    Switch mSwitchServiceState;
//    @BindView(R.id.ll_service_state)
//    LinearLayout mLlServiceState;
//    @BindView(R.id.tv_notify_show_mode)
//    TextView mTvNotifyShowMode;
//    @BindView(R.id.ll_notify_show_mode)
//    LinearLayout mLlNotifyShowMode;
//    @BindView(R.id.tv_notify_update_interval)
//    TextView mTvNotifyUpdateInterval;
//    @BindView(R.id.ll_notify_update_interval)
//    LinearLayout mLlNotifyUpdateInterval;
//    @BindView(R.id.tv_notify_show_setting)
//    TextView mTvNotifyShowSetting;
//    @BindView(R.id.switch_notify_show_setting)
//    Switch mSwitchNotifyShowSetting;
//    @BindView(R.id.ll_notify_show_setting)
//    LinearLayout mLlNotifyShowSetting;

//    @BindView(R.id.ll_tile_state)
//    LinearLayout mLlTileState;
//    @BindView(R.id.tv_tile_text_size)
//    TextView mTvTileTextSize;
//    @BindView(R.id.ll_tile_text_size)
//    LinearLayout mLlTileTextSize;
//    @BindView(R.id.tv_tile_text_color)
//    TextView mTvTileTextColor;
//    @BindView(R.id.ll_tile_text_color)
//    LinearLayout mLlTileTextColor;
//    @BindView(R.id.tv_tile_update_interval)
//    TextView mTvTileUpdateInterval;
//    @BindView(R.id.ll_tile_update_interval)
//    LinearLayout mLlTileUpdateInterval;
//    @BindView(R.id.tv_tile_text_style)
//    TextView mTvTileTextStyle;
//    @BindView(R.id.ll_tile_update_style)
//    LinearLayout mLlTileUpdateStyle;
//    private SharedPreferences mSp;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_setting);
//        ButterKnife.bind(this);
//        PreferenceManager.setDefaultValues(this, R.xml.setting_list, false);
        SettingFragment fragment = new SettingFragment();
        android.app.FragmentManager manager = getFragmentManager();
        FragmentTransaction transaction = manager.beginTransaction();
        transaction.replace(R.id.ll_container, fragment);
        transaction.commit();

//        mSp = getSharedPreferences(Config.SP_Key.SP_NAME_KEY, Context.MODE_PRIVATE);
//
//        resumeState();
//        initListener();
    }

//    private void initListener() {
//        mSwitchServiceState.setOnCheckedChangeListener((buttonView, isChecked) -> {
//            Intent intent = new Intent(this, NetMonitorService.class);
//            if (!isChecked) {
//                stopService(intent);
//            } else {
//                startService(intent);
//            }
//            mTvServiceState.setText(getString(R.string.notify_service_state, isChecked ? "已开启" : "未开启"));
//        });
//        mSwitchNotifyShowSetting.setOnCheckedChangeListener((buttonView, isChecked) -> {
//            mTvNotifyShowSetting.setText(getString(R.string.notify_show_setting, isChecked ? "自动" : "不"));
//            mSp.edit().putBoolean(Config.SP_Key.NOTIFY_AUTO_REMOVE_KEY, isChecked).commit();
//        });
//    }

//    private void resumeState() {
//        boolean serviceRunning = ServiceUtil.isServiceRunning(this, NetMonitorService.class.getName());
//        mSwitchServiceState.setChecked(serviceRunning);
//        mTvServiceState.setText(getString(R.string.notify_service_state, serviceRunning ? "已开启" : "未开启"));
//        int mode = mSp.getInt(Config.SP_Key.NOTIFY_NET_MODE_KEY, Config.DefaultValue.NOTIFY_NET_MODE);
//        switch (mode) {
//            case Config.NetMode.UP:
//                mTvNotifyShowMode.setText("仅上传");
//                break;
//            case Config.NetMode.DOWN:
//                mTvNotifyShowMode.setText("仅下载");
//                break;
//            case Config.NetMode.ALL:
//                mTvNotifyShowMode.setText("上传+下载");
//                break;
//            default:
//                mTvNotifyShowMode.setText("仅下载");
//                break;
//        }
//        long notifyInterval = mSp.getLong(Config.SP_Key.NOTIFY_INTERVAL_KEY, Config.DefaultValue.NOTIFY_INTERVAL);
//        mTvNotifyUpdateInterval.setText(getString(R.string.update_interval, notifyInterval));
//
//        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N) {//低于7.0，隐藏磁贴设置
//            mLlTileState.setVisibility(View.GONE);
//            mLlNotifyShowSetting.setVisibility(View.GONE);
//        } else {
//            boolean notifyAutoRemove = mSp.getBoolean(Config.SP_Key.NOTIFY_AUTO_REMOVE_KEY, Config.DefaultValue.NOTIFY_AUTO_REMOVE);
//            mSwitchNotifyShowSetting.setChecked(notifyAutoRemove);
//            mTvNotifyShowSetting.setText(getString(R.string.notify_show_setting, notifyAutoRemove ? "自动" : "不"));
//
//            float tileTextSize = mSp.getFloat(Config.SP_Key.TILE_TEXT_SIZE_KEY, Config.DefaultValue.TILE_TEXT_SIZE);
//            mTvTileTextSize.setText(getString(R.string.text_size, (int) tileTextSize));//字体大小
//            int textColor = mSp.getInt(Config.SP_Key.TILE_TEXT_COLOR_KEY, Config.DefaultValue.TILE_TEXT_COLOR);
//            String tileTextColor = String.valueOf(Integer.toHexString(textColor)).toUpperCase();//字体颜色
//            if (tileTextColor.startsWith("FF")) {
//                tileTextColor = tileTextColor.substring(2, tileTextColor.length());
//            }
//            mTvTileTextColor.setText(getString(R.string.text_color, tileTextColor));
//            long tileInterval = mSp.getLong(Config.SP_Key.TILE_INTERVAL_KEY, Config.DefaultValue.TILE_INTERVAL);
//            mTvTileUpdateInterval.setText(getString(R.string.update_interval, tileInterval));//
//
//            int tileTextStyle = mSp.getInt(Config.SP_Key.TILE_TEXT_STYLE_KEY, Config.DefaultValue.TILE_TEXT_STYLE);
//            switch (tileTextStyle) {
//                case Config.TextStyle.NORMAL:
//                    mTvTileTextStyle.setText("默认");
//                    break;
//                case Config.TextStyle.BOLD:
//                    mTvTileTextStyle.setText("粗体");
//                    break;
//                case Config.TextStyle.ITALIC:
//                    mTvTileTextStyle.setText("斜体");
//                    break;
//                case Config.TextStyle.ALL:
//                    mTvTileTextStyle.setText("粗体和斜体");
//                    break;
//                default:
//                    mTvTileTextStyle.setText("默认");
//                    break;
//            }
//        }
//    }

//    @OnClick({R.id.ll_service_state, R.id.ll_notify_show_mode, R.id.ll_notify_update_interval,
//            R.id.ll_notify_show_setting, R.id.ll_tile_text_size, R.id.ll_tile_text_color,
//            R.id.ll_tile_update_interval, R.id.ll_tile_update_style})
//    public void onViewClicked(View view) {
//        switch (view.getId()) {
//            case R.id.ll_service_state:
//                boolean serviceRunning = ServiceUtil.isServiceRunning(this, NetMonitorService.class.getName());
//                mSwitchServiceState.setChecked(!serviceRunning);
//                break;
//            case R.id.ll_notify_show_mode:
//                break;
//            case R.id.ll_notify_update_interval:
//                break;
//            case R.id.ll_notify_show_setting:
//                boolean notifyAutoRemove = mSp.getBoolean(Config.SP_Key.NOTIFY_AUTO_REMOVE_KEY, Config.DefaultValue.NOTIFY_AUTO_REMOVE);
//                mSwitchNotifyShowSetting.setChecked(!notifyAutoRemove);
//                break;
//            case R.id.ll_tile_text_size:
//                break;
//            case R.id.ll_tile_text_color:
//                break;
//            case R.id.ll_tile_update_interval:
//                break;
//            case R.id.ll_tile_update_style:
//                break;
//        }
//    }
}
